﻿using System;
using UnityEngine;
using LuaInterface;
using Object = UnityEngine.Object;

public class ParticlePhysicsExtensionsWrap
{
	public static LuaMethod[] regs = new LuaMethod[]
	{
		new LuaMethod("GetSafeCollisionEventSize", GetSafeCollisionEventSize),
		new LuaMethod("GetCollisionEvents", GetCollisionEvents),
		new LuaMethod("New", _CreateParticlePhysicsExtensions),
		new LuaMethod("GetClassType", GetClassType),
	};


	[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
	static int _CreateParticlePhysicsExtensions(IntPtr L)
	{
		LuaDLL.luaL_error(L, "ParticlePhysicsExtensions class does not have a constructor function");
		return 0;
	}

	[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
	static int GetClassType(IntPtr L)
	{
		LuaScriptMgr.Push(L, typeof(ParticlePhysicsExtensions));
		return 1;
	}

	public static void Register(IntPtr L)
	{
		LuaScriptMgr.RegisterLib(L, "UnityEngine.ParticlePhysicsExtensions", regs);
	}

	[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
	static int GetSafeCollisionEventSize(IntPtr L)
	{
		LuaScriptMgr.CheckArgsCount(L, 1);
		ParticleSystem arg0 = LuaScriptMgr.GetUnityObject<ParticleSystem>(L, 1);
		int o = ParticlePhysicsExtensions.GetSafeCollisionEventSize(arg0);
		LuaScriptMgr.Push(L, o);
		return 1;
	}

	[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
	static int GetCollisionEvents(IntPtr L)
	{
		LuaScriptMgr.CheckArgsCount(L, 3);
		ParticleSystem arg0 = LuaScriptMgr.GetUnityObject<ParticleSystem>(L, 1);
		GameObject arg1 = LuaScriptMgr.GetUnityObject<GameObject>(L, 2);
		ParticleCollisionEvent[] objs2 = LuaScriptMgr.GetArrayObject<ParticleCollisionEvent>(L, 3);
		int o = ParticlePhysicsExtensions.GetCollisionEvents(arg0,arg1,objs2);
		LuaScriptMgr.Push(L, o);
		return 1;
	}
}

